home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 4.9 KB | 156 lines |
- 10 SCREEN 0,0,0:WIDTH 80:KEY OFF:COLOR 7,0:CLS
- 20 T$=MID$(TIME$,7,2):RANDOMIZE VAL(T$)
- 30 LOCATE 5,31,0:PRINT" THE PONG-PONG GAME "
- 40 COLOR 0,7
- 50 FOR Y=10 TO 20
- 60 LOCATE Y,22,0:PRINT " ";:NEXT Y
- 70 PRINT;
- 80 Y=15:X=30:LY=14:LX=29:XX=1:YY=1
- 90 LOCATE LY,LX,0:PRINT "WEND";
- 100 LOCATE Y,X,0:PRINT "<";
- 110 LY=Y:LX=X
- 120 X=X+XX:IF X>59 THEN XX=-1
- 130 IF X<23 THEN XX=1
- 140 Y=Y+YY:IF Y>19 THEN YY=-1
- 150 IF Y<11 THEN YY=+1
- 160 COLOR 7,0:LOCATE 25,26,0:PRINT "PRESS SPACE BAR FOR INSTRUCTIONS";
- 170 K$=INKEY$:IF K$="" GOTO 90
- 180 IF K$<>" " THEN 90
- 190 POKE 106,0:CLS:LOCATE 5,10
- 200 PRINT"You are about to play a game of PONG-PONG. The object of the
- 210 PRINT" game is to HIT a target with a moving ball. Of course the target will not
- 220 PRINT" stay still . The ball's direction is controlled by inserting paddles in its"
- 230 PRINT" path. To make the game more interesting the paddles remain on the gameboard.
- 240 PRINT"
- 250 PRINT" You can control the games difficulty by choosing the length of time the
- 260 PRINT" target will remain in one location. You will be given FIVE targets.
- 270 PRINT'
- 280 PRINT" The paddles are placed using keys '/' and '\' on the right and left
- 290 PRINT" bottom row of keys. They will place a paddle at the balls current location.
- 300 PRINT
- 310 PRINT" The TARGET will look like :";:COLOR 23,0:PRINT"WEND";:COLOR 7,0
- 320 PRINT"
- 330 PRINT" The BALL will look like : <UNK! {0001}>"
- 340 LOCATE 25,20:PRINT" PRESS SPACE BAR TO START GAME ";
- 350 K$=INKEY$:IF K$="" GOTO 350
- 360 IF K$<>" " THEN 350
- 370 '-------------------------- SET TARGET TIMES ----------------------------
- 380 POKE 106,0:CLS:BAL=0:SCORE=0
- 390 LOCATE 5,15:PRINT" It is now time to choose the 'TARGET TIMES'.."
- 400 LOCATE 8,6:PRINT "If you have just played a game the target time was ";TGT;"seconds."
- 410 LOCATE 12,20,0:PRINT "HOW MANY SECONDS (1-59) DO YOU WISH ?"
- 420 LOCATE 15,27,0:PRINT " 5 ====> OUTSTANDING"
- 430 LOCATE 16,27,0:PRINT "10 ====> EXPERT"
- 440 LOCATE 17,27,0:PRINT "20 ====> VERY GOOD"
- 450 LOCATE 18,27,0:PRINT "30 ====> NORMAL"
- 460 LOCATE 19,27,0:PRINT "40 ====> BEGINNER"
- 470 LOCATE 20,27,0:PRINT "59 ====> IF YOU MUST!"
- 480 LOCATE 22,25,0:INPUT " YOUR TIME (1-59) : ",TGT
- 490 IF TGT <1 OR TGT >59 THEN LOCATE 24,28,0:PRINT "BETWEEN 1 AND 59";:LOCATE 22,46,0:PRINT " ";:GOTO 480
- 500 '---------------------- set game field on screen ------------------------
- 510 COLOR 0,7:CLS
- 520 A=1:Y=5:X=40:D=2
- 530 TY%=10:TX%=10
- 540 LOCATE 1,2:PRINT"KEYTHEN";
- 550 FOR I=3 TO 78:LOCATE 1,I,0:PRINT"THEN";:NEXT I
- 560 LOCATE 1,78,0:PRINT"THENCLOSE"
- 570 FOR I=2 TO 23:LOCATE I,79,0:PRINT"OPEN":NEXT I
- 580 LOCATE 24,79,0:PRINT "LOAD";
- 590 FOR I=78 TO 3 STEP -1:LOCATE 24,I,0:PRINT "THEN";:NEXT I
- 600 LOCATE 24,2,0:PRINT"SCREENTHEN";
- 610 FOR I=23 TO 2 STEP -1:LOCATE I,2,0:PRINT"OPEN":NEXT I
- 620 TIME$="00"
- 630 LOCATE 25,25:PRINT"SECONDS REMAINING ON TARGET NUMBER ";
- 640 GOSUB 1240
- 650 LY=Y:LX=X
- 660 IF D>4 THEN D=D-4:IF D<1 THEN D=D+4
- 670 ON D GOSUB 850,860,870,880
- 680 LOCATE 25,21:PRINT RT;
- 690 S=SCREEN (Y,X)
- 700 IF S=47 OR S=92 GOTO 950
- 710 IF S=178 THEN GOTO 1430
- 720 '--------------------------- erase old ball -----------------------------
- 730 LOCATE LY,LX:PRINT" "
- 740 LOCATE Y,X:PRINT CHR$(2)
- 750 CT= VAL(MID$(TIME$,7,2))
- 760 RT=TGT-CT: IF RT=<0 THEN GOSUB 1240
- 770 IF X=3 OR X=78 OR Y=2 OR Y=23 THEN GOSUB 1210
- 780 '--------------------------- check keyboard -----------------------------
- 790 K$=INKEY$:IF K$="" THEN K$="."
- 800 KY=ASC(K$)
- 810 IF KY=47 GOTO 1050
- 820 IF KY=92 GOTO 1080
- 830 GOTO 650
- 840 '------------------------- direction switches ---------------------------
- 850 Y=Y-1:GOTO 890
- 860 X=X+1:GOTO 890
- 870 Y=Y+1:GOTO 890
- 880 X=X-1:GOTO 890
- 890 IF X>78 THEN X=78
- 900 IF X<3 THEN X=3
- 910 IF Y>23 THEN Y=23
- 920 IF Y<2 THEN Y=2
- 930 RETURN
- 940 '------------------------- hit paddle routine ---------------------------
- 950 IF S=47 AND (D=1 OR D=3) GOTO 980
- 960 IF S=92 AND (D=2 OR D=4) GOTO 980
- 970 D=D-2
- 980 D=D+1
- 990 SOUND 60,1
- 1000 LOCATE LY,LX:PRINT" "
- 1010 IF D>4 THEN D=D-4
- 1020 IF D<1 THEN D=D+4
- 1030 GOTO 670
- 1040 '----------------------- paddle placement here -------------------------
- 1050 LOCATE Y,X:PRINT "/"
- 1060 IF D=1 OR D=3 THEN GOTO 1110
- 1070 D=D-2:GOTO 1110
- 1080 LOCATE Y,X:PRINT "\"
- 1090 IF D=2 OR D=4 THEN GOTO 1110
- 1100 D=D-2
- 1110 D=D+1
- 1120 IF D>4 THEN D=D-4
- 1130 IF D<1 THEN D=D+4
- 1140 ON D GOSUB 850,860,870,880
- 1150 LOCATE LY,LX:PRINT" "
- 1160 S=SCREEN(Y,X):IF S=178 GOTO 1430
- 1170 LOCATE Y,X:PRINT CHR$(2)
- 1180 LY=Y:LX=X
- 1190 GOTO 690
- 1200 '--------------------- sound of bouncing off wall ----------------------
- 1210 D=D+2:IF D>4 THEN D=D-4
- 1220 SOUND 38,2: RETURN
- 1230 '--------------------- place new target and ball -----------------------
- 1240 BAL=BAL+1:IF BAL=6 THEN 1350
- 1250 LOCATE TY%,TX%:PRINT" ";
- 1260 TY%=2+20*RND(3):TX%=4+72*RND(4)
- 1270 COLOR 16,7
- 1280 LOCATE TY%,TX%:PRINT"WEND";
- 1290 PLAY"MBA16B16A16B16"
- 1300 TIME$="00"
- 1310 COLOR 0,7
- 1320 LOCATE 25,60:PRINT BAL;
- 1330 RETURN
- 1340 '------------------------ five targets played --------------------------
- 1350 CLS:IF SCORE>0 GOTO 1450
- 1360 COLOR 23,0: LOCATE 5,31:PRINT " SORRY YOU LOSE ":COLOR 7,0
- 1370 LOCATE 10,23:PRINT " > YOU USED UP YOUR FIVE TARGETS < "
- 1380 LOCATE 24,20:PRINT " DO YOU WISH TO PLAY ANOTHER GAME (Y/N) ? ";
- 1390 K$=INKEY$:IF K$="" GOTO 1390
- 1400 IF K$="Y" OR K$="y" GOTO 370
- 1410 IF K$="N" OR K$="n" THEN CLS:LOCATE 10,35:PRINT" GOOD BYE":CHAIN "MENU",1000
- 1420 GOTO 1390
- 1430 '---------------------- score and winner circle ------------------------
- 1440 SCORE=SCORE+1
- 1450 PLAY "MSL16ABCDEFGABCDEFGABCDEFGP8C8P8C8P8C4"
- 1460 CLS:LOOP=200
- 1470 LOOP=LOOP-1:IF LOOP<>0 GOTO 1470
- 1480 IF BAL<5 GOTO 500
- 1490 CLS:LOCATE 5,32:PRINT "CONGRATULATIONS"
- 1500 LOCATE 10,19:PRINT"YOU HIT";SCORE;"TARGET(S) USING";TGT;"SECONDS/TARGET."
- 1510 LOCATE 24,24:PRINT"DO YOU WISH TO PLAY AGAIN (Y/N)? ";
- 1520 K$=INKEY$:IF K$="" GOTO 1520
- 1530 IF K$="Y" OR K$="y" THEN COLOR 7,0:GOTO 370
- 1540 IF K$="N" OR K$="n" THEN 1550 ELSE 1520
- 1550 CLS:LOCATE 12,35:COLOR 7,0:PRINT " GOOD BYE ":LOCATE 23,1:CHAIN "MENU",1000
-